/**
 * 事件总线
 */
export class EventBus {
  // 声明一个Map类型的event属性
  event: Map<any, any[]> = new Map();
  emit(eventName: string, ...args: any[]): void {
    // 实现emit方法，根据eventName来触发相应的事件
    const listeners = this.event.get(eventName);
    if (listeners) {
      for (const listener of listeners) {
        listener(...args);
      }
    }
  }

  on(eventName: string, listener: (...args: any[]) => void): void {
    // 实现on方法，用于注册事件监听器
    const listeners = this.event.get(eventName) || [];
    listeners.push(listener);
    this.event.set(eventName, listeners);
  }
}

export default new EventBus();
